草庐IT

c++ - C++ 中复杂的 Typedef

全部标签

c++ - Visual Studio 下的 string::swap 复杂度

cppreference页面说std::basic_string::swap它具有恒定的复杂性。正如我所假设的那样,这意味着复制内容不会发生,只会发生指针交换或类似的情况。我写了一个测试代码并体验到它确实在VS2010下移动了内容。测试代码:std::strings1("almafa");std::strings2("kortefa");std::coutg++4.6.3上的输出s1.c_str():0x22fe028s2.c_str():0x22fe058SWAP!s1.c_str():0x22fe058s2.c_str():0x22fe028VS2010上的输出s1.c_str()

c# - 为 C++ 类的复杂系统创建 C# 绑定(bind)?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我有现有的C++库,其中包含许多协同工作的不同类。一些示例用法应该包括将一个类的实例传递给另一个类的构造函数/方法。我计划使用C++/CLI为这些C++类提供C#绑定(bind),因此我不必移植整个C++代码。我已经可以通过创建另一个类来以“Facade”的方式做到这一点,该类向用户隐藏现有C++代码中使用的所有类。但是,我想要的是向用户提供具有相同方法签名的相同类。对此有什么指导方针或建

c++ - 带有类模板 typedef 参数的函数模板

以下代码是我在大型项目中尝试做的事情的示例:#include#include//standardtemplatetypedefworkaroundtemplatestructmyvar{typedefstd::vectorType;};templateTmax(typenamemyvar::Type&x)//Tmax(std::vector&x){Ty;y=*x.begin();for(typenamemyvar::Type::iteratorit=x.begin();it!=x.end();++it)if(*it>y)y=*it;returny;}intmain(intargc,ch

c++ - typedef 到模板类型

下面的问题是什么?typedefboost::shared_ptrSharedPtr;GCC给出以下错误:ISOC++forbidsdeclarationof‘shared_ptr’withnotype 最佳答案 C++(还)没有“模板类型定义”,您可以在其中“重命名”这样的模板。这是C++0x中添加的一个特性,其中这样的“typedef”被称为“别名模板”。目前最简单的解决方法是使用带有嵌套typedef的类模板:templatestructSharedPtr{typedefstd::shared_ptrType;};//usag

c++ - typedef-name 作为基类 : illegal but widely tolerated

[class.derived]的第一段说的是基类说明符,Ifthenamefoundisnotaclass-name,theprogramisill-formed.但是,一个simple测试表明Comeau和g++-ansi-pedantic都接受typedef-name作为基础。Boostheader上的简单grep-r'[^:]:mpl'表明流行的库通常依赖于这种行为。是否有任何编译器实际上拒绝了基说明符中类的typedef?GCC甚至检查基类类型是否不是const,这改进了非标准功能。有解决办法吗?我唯一能想到的就是用C++11别名模板替换typedef。一个模板化的别名声明声明

c++ - 返回 T<A> 的函数在某些 typedef 情况下无法编译

我不明白为什么func3()无法编译,当func2()和func4()做。g++4.1.2:error:'B::my_t'hasincompletetypeVS2008:errorC2079:'B::my_t'usesundefinedclass'A'templatestructC{Tmt_t;};templatestructB{typedefCC_type;Tmy_t;};structOther{};structA{Bfunc2();B::C_typefunc3();//error:'B::my_t'hasincompletetypeB::C_typefunc4();};intmai

c++ - 在函数上使用 typedef

在下文中,我如何使用typedef语法定义我的函数?typedefvoidF();//declaremyfunctionFf;//errorFf{} 最佳答案 函数的定义将遵循通常的语法://declaremyfunctionFf;//itisexactlyequivalentto:voidf();//definitionvoidf(){cout要测试该定义确实是之前声明的函数的定义,只需调用函数f()>after声明和before定义(阅读main()中的注释)://declarationFf;intmain(){f();//at

c++ - C++中保存复杂对象的方法

我一直都是通过将ASCII码写入文件来保存数据的,也就是param1=value1param2=stringstringstring并加载了烦人的解析开销。我只是试图通过将整个对象写入二进制文件来提升我的编程游戏,alaclassRecord{intpar1;stringpar2;vectorpar3;voidsaveRecord(stringfName);voidloadRecord(stringfName);}Record::saveRecord(){...fstreamoutFile(fName.c_str(),fstream::out|fstream::binary);outF

c++ - ROMable(但复杂)的(ROMable)对象数组 - 如何解决?

我正在为MCU(ARMCortex-M3)开发固件。这些设备没有很多RAM,因此无论如何您都应该尝试将数据放在常量内存(闪存)中。问题是这样的:设备必须提供可由接口(interface)(MODBUS)读取的“寄存器”,因此运算符(operator)读取“地址”10并获得一些数字,他/她“写入”到“地址”“101它会引起一些Action等。将有数百个这些“地址”并且访问它们会引起一些Action-例如从1-10读取导致传感器1到10上的温度测量,从11-读取20导致读取一些校准值,写入这些地址导致这些校准值存储在非volatile存储器等中-会有很多不同的功能(;目前我是这样实现的:有

c++ - 使用 C++ 解析一个巨大的复杂 CSV 文件

我有一个很大的CSV文件,如下所示:23456,末日将至,毫无意义的愚蠢描述,http://www.example.com,45332,1998年7月5日,星期日,45:332这只是CSV文件的一行。其中大约有500k。我想用C++解析这个文件。我开始的代码是:#include#include#include#includeusingnamespacestd;intmain(){//opentheinputcsvfilecontainingtrainingdataifstreaminputFile("my.csv");stringline;while(getline(inputFile